home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Pack
/
Power_Pack_5_1992_Alfons_Mittelmeyer_de.d64
/
graphics info
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
24KB
|
568 lines
10 rem =supergraphics info =========c64
20 rem graphics system by a.mittelmeyer
30 rem
40 rem fuer commodore c64
50 rem ================================
60 sys57812"supergraphics.mc",8,0:poke780,0
70 poke782,191:poke781,254:sys65493
80 goto5380
90 printchr$(147):sys52259,56320,56320,9216,1
100 print"wir befinden uns jetzt im textmodus"
110 print:print"der wechsel vom textmodus in den"
120 print"grafikmodus und wieder zurueck"
130 print"vollzieht sich mit folgenden befehlen"
140 print:print"grafik ein: sys51090"
150 print"grafik aus: sys51115"
160 print:print"dieses wollen wir uns einmal ansehen.":print
170 print"nach druecken einer taste kommen sie in"
180 print"den grafikmodus, nach einem weiteren"
190 print"tastendruck wieder in den textmodus."
200 gosub2300:sys51090
210 gosub2300:sys51115
220 printchr$(147)
230 print"vor dem ersten einschalten der grafik"
240 print"sollte die farbe voreingestellt"
250 print"und der grafik-bildschirm geloescht"
260 print"werden.":print
270 print"das einstellen der farbe fuer den"
280 print"gesamten bildschirm bewirkt:"
290 print"sys50906,vf,hf":print
300 print"vf ist vordergrundfarbe"
310 print"hf ist hintergrundfarbe":print
320 print"wie bereits vorher, gehen wir nach"
330 print"tastendruck wieder in den grafik-modus."
340 print"im unterschied zu vorher haben wir aber"
350 print"mit sys50906,1,0 die vordergrundfarbe"
360 print"weiss und die hintergrundfarbe schwarz"
370 print"eingestellt."
380 gosub2300:sys50906,1,0:sys51090
390 gosub2300:sys51115
400 printchr$(147):print"wenn der bildschirm noch etwas wirr"
410 print"aussah, so liegt es daran, dass er"
420 print"noch nicht geloescht war."
430 print:print"grafik-bildschirm loeschen: sys50941":print
440 print"die vollstaendige befehlsfolge fuer"
450 print"einschalten eines leeren bilschirms"
460 print"umfasst:"
470 print:print"farbeinstellung":print"bildchirmloeschen":print"grafik-ein"
480 print:print"etwa: sys50906,1,0:sys50941:sys51090"
490 gosub2270:sys50906,1,0:sys50941:sys51090
500 gosub2280:sys51115:return
510 gosub2260:sys50088,8,8,"wir befinden uns im grafikmodus"
520 sys50088,8,24,"auch hier ist text moeglich, wie zu"
530 sys50088,8,32,"zu sehen ist."
540 sys50088,8,48,"die befehle lauten:"
550 sys50088,24,64,"sys50088,x,y,"+chr$(34)+"text"+chr$(34)
560 sys50088,24,72,"sys50107,"+chr$(34)+"text"+chr$(34)
570 sys50088,8,88,"etwa:"
580 sys50088,24,104,"sys50088,80,144,"+chr$(34)+"text1"+chr$(34)
590 sys50088,24,112,"sys50107,"+chr$(34)+" text2"+chr$(34)
600 gosub2280:sys50088,80,144,"text1":sys50107," text2"
610 gosub2280:sys50941
620 sys50088,0,8,"bei der textausgabe findet kein zeilen-"
630 sys50088,0,16,"umbruch statt. er muss durch die angabe"
640 sys50088,0,24,"neuer koordinaten vorgenommen werden."
650 sys50088,0,40,"sind die koordinaten durch acht teilbar,"
660 sys50088,0,48,"so ist die ausgabe besonders schnell.":gosub2280
670 fori=0to7:sys50088,40+i,64+i*10,"ausgabetest":next
680 sys50088,0,152,"hier wurden die x-koordinaten um eins"
690 sys50088,0,160,"und die y-koordinaten um zehn erhoeht."
700 gosub2280:sys51115:return
710 gosub2260:sys50774,2,2:sys50088,40,8,"schriftgroesse":sys50774,1,1
720 sys50088,0,32,"im grafikmodus laesst sich die buch-"
730 sys50088,0,40,"stabengroesse veraendern."
740 sys50088,0,56,"der befehl dazu lautet: sys50774,vx,vy"
750 sys50088,0,72,"vx ist vergroesserung in x-richtung"
760 sys50088,0,80,"vy ist vergroesserung in y-richtung"
770 sys50088,0,96,"dazu einige beispiele"
780 gosub2280:sys50941:sys50774,1,25
790 sys50088,0,0,"a":sys50774,1,1
800 gosub2280:sys50941:sys50774,40,1
810 sys50088,0,0,"a":sys50774,1,1
820 gosub2280:sys50941:sys50774,40,25
830 sys50088,0,0,"a":sys50774,1,1
840 gosub2280:sys50941
850 sys50088,0,0,"das war etwas stark uebertrieben."
860 sys50088,0,8,"doppelt hohe und breite buchstaben"
870 sys50088,0,16,"sind fuer plakative ueberschriften"
880 sys50088,0,24,"aber geeignet."
890 sys50774,2,1:sys50088,0,48,"doppelt breit"
900 sys50774,1,2:sys50088,0,64,"doppelt hoch"
910 sys50774,2,2:sys50088,0,88,"doppelt hoch+breit":sys50774,1,1
920 sys50088,0,112,"die normalgroesse wird definiert durch:"
930 sys50088,0,128,"sys50774,1,1"
940 sys50088,0,144,"nur in normalgroese gibt es die"
950 sys50088,0,152,"schnelle textausgabe. vergroesserungen"
960 sys50088,0,160,"sind nur ganzzahlig moeglich.":gosub2280:sys51115:return
970 gosub2260:sys50088,240,0,""
980 fori=3to0step-1:sys50761,i,i
990 sys50107," schrift-ausrichtung ":next
1000 gosub2280
1010 sys50941:sys50761,3,3:sys50088,312,0,"wenn sie den bildschirm"
1020 sys50088,304,0,"gerne im hochformat"
1030 sys50088,296,0,"haetten, ist dieses"
1040 sys50088,288,0,"kein problem."
1050 sys50088,8,8,"weiter mit taste":gosub2300
1060 sys50761,0,0:sys50941
1070 sys50088,0,0,"fuer die beschriftung von diagrammen"
1080 sys50088,0,8,"ist gedrehte schrift recht nuetzlich."
1090 sys50088,0,24,"der befehl lautet: sys50761,ri,dr"
1100 sys50088,0,40,"ri ist die richtung der schrift"
1110 sys50088,0,48,"dr ist die drehung der buchstaben"
1120 sys50088,0,64,"beide groessen koennen werte von"
1130 sys50088,0,72,"0 bis 3 annehmen."
1140 sys 50088,0,96,"probieren sie es einfach aus.":gosub2280:ri=0:dr=0
1150 sys50941:sys50088,8,160,"richtung?"
1160 sys50088,8,168,"drehung?"
1170 sys50088,8,184,"abbruch mit leertaste"
1180 poke49634,3
1190 poke49863,1:sys50088,88,160," "
1200 poke49634,0:gosub2300:ifa$=" "then1340
1210 sys50774,2,2
1220 poke49863,0:sys50761,ri,dr:sys50088,160,96," ":sys50761,0,0
1230 sys50774,1,1
1240 ri=asc(a$)and3:a$=chr$(ri+48)
1250 sys50088,88,160,a$:poke49634,3
1260 poke49863,1:sys50088,88,168," "
1270 poke49634,0:gosub2300:ifa$=" "then1340
1280 dr=asc(a$)and3:a$=chr$(dr+48)
1290 poke49863,0:sys50088,88,168,a$
1300 sys50774,2,2:sys50761,ri,dr
1310 sys50088,160,96,"text"
1320 sys50761,0,0:sys50774,1,1
1330 goto1180
1340 poke49863,0
1350 sys50941:sys50088,0,0,"wie sie gesehen haben, laesst sich auch"
1360 sys50088,0,8,"die schrift-ausrichtung mit der"
1370 sys50088,0,16,"vergroesserung kombinieren."
1380 gosub2280:sys51115:return
1390 gosub2260:sys50774,160,100:sys49264,160,0:sys50774,2,2
1400 fori=0to3
1410 poke49634,i:sys50088,48,8+16*i,"schriftprobe":next
1420 sys50774,1,1:poke49634,0
1430 sys50088,0,120,"jedesmal erscheint dieselbe schrift."
1440 sys50088,0,128,"zweimal ist sie vollstaendig sichtbar,"
1450 sys50088,0,136,"zweimal nur teilweise."
1460 sys50088,0,152,"dieses liegt am textattribut."
1470 gosub2280:sys50941
1480 sys50088,0,0,"das textattribut kann werte"
1490 sys50088,0,8,"von 0 bis 3 annehmen."
1500 sys50088,0,24,"eingestellt wird es mit: poke49634,ta"
1510 sys50088,0,40,"ta=0: zeichenvordergrund -> vordergrund"
1520 sys50088,0,48," zeichenhintergrund -> hintergrund"
1530 sys50088,0,64,"ta=1: zeichenvordergrund -> vordergrund"
1540 sys50088,0,80,"ta=2: zeichenvordergrund -> hintergrund"
1550 sys50088,0,96 ,"ta=3: zeichenvordergrund tauscht"
1560 sys50088,0,104," vordergrund mit hintergrund"
1570 sys50088,0,128,"weitere moeglichkeiten bietet der"
1580 sys50088,0,136,"reverse zeichensatz. (siehe zeichensatz)"
1590 gosub2280:sys50941
1600 sys49415,160,8,120,48:sys49415,160,8,200,48
1610 sys49415,160,88,120,48:sys49415,160,88,200,48
1620 sys50524,160,48:poke49863,2
1630 sys50088,0,104,"[212]extattribut 3 eignet sich gut als"
1640 sys50088,0,112,"[195]ursor, da nochmaliges [211]chreiben das"
1650 sys50088,0,120,"vorher [199]eschriebene aufhebt."
1660 sys50088,0,136,"[212]extattribut 2 eignet sich besonders"
1670 sys50088,0,144,"zum [193]npinseln, da das [199]eschriebene"
1680 sys50088,0,152,"nur auf dem [214]ordergrund sichtbar wird."
1690 sys50088,0,160,"[194]ewegen sie mit den [195]ursortasten den"
1700 sys50088,0,168,"[208]insel doch einmal ueber den [194]ildschirm.":poke49863,0
1710 sys50088,8,184,"abbruch mit leertaste"
1720 x=0:y=0
1730 poke49634,3:sys50088,x,y,"[209]"
1740 gosub2300:sys50088,x,y,"[209]":ifa$=" "then1810
1750 poke49634,2:sys50088,x,y,"[191]"
1760 ifa$=""thenx=x+8
1770 ifa$="[157]"thenx=x-8
1780 ifa$=""theny=y+8
1790 ifa$="[145]"theny=y-8
1800 x=abs(x):y=abs(y)and255:goto1730
1810 poke49634,0:sys51115:return
1820 gosub2260:sys50774,80,80:sys49264,124,8
1830 sys50774,4,4:forj=0to2:poke49605,j
1840 forx=16to308step16:sys49264,x,16*j+16:next:next
1850 sys50894,1:poke49605,3:sys50774,1,1
1860 forx=16to308step16:sys49264,x,64:next:poke49605,1
1870 sys50088,0,104,"punkte werden ausgegeben durch:"
1880 sys50088,112,120,"sys49264,x,y"
1890 sys50088,0,136,"alles in der oberen bildschirmhaelfte"
1900 sys50088,0,144,"sind punkte."
1910 gosub2280:sys50941:poke49863,2
1920 sys50088,0,0,"[208]unkte koennen mit [211][217][211]50774,[214][216],[214][217] ver-"
1930 sys50088,0,8,"vergroessert werden und dadurch [204]inien-"
1940 sys50088,0,16,"und [198]laechencharakter annehmen."
1950 sys50088,0,32,"[196]ie [196]arstellung richtet sich nach dem"
1960 sys50088,0,40,"[208]unktattribut: [208][207][203][197]49605,[208][193]"
1970 sys50088,0,56,"[208][193]=0: [208]unkt loeschen"
1980 sys50088,0,64,"[208][193]=1: [208]unkt setzen"
1990 sys50088,0,72,"[208][193]=2: [208]unkt invertieren"
2000 sys50088,0,80,"[208][193]=3: [208]inselmuster ausgeben"
2010 sys50088,0,96,"[196]rei [205]oeglichkeiten gibt es, ein [208]insel-"
2020 sys50088,0,104,"muster zu erzeugen."
2030 sys50088,0,120,"- [208]oken in [193]dressen 49635 bis 49642"
2040 sys50088,0,128,"- [211][217][211]50894,[194]ildschirmcode eines [218]eichens"
2050 sys50088,0,136,"- vorangegangene [218]eichenausgabe"
2060 sys50088,0,152,"[196]ie [208]inselausgabe wird vom [212]extattribut"
2070 sys50088,0,160,"[208][207][203][197]49634,[212][193] bestimmt.":poke49863,0
2080 gosub2280:sys51115:return
2090 gosub2260:forx=0to320step20:sys49415,160,100,x,0:next
2100 poke49863,2:sys50088,0,112,"[204]inien entstehen durch [193]neinanderreihen"
2110 sys50088,0,120,"von [208]unkten. [196]amit dieses schnell vor"
2120 sys50088,0,128,"sich geht, gibt es die [210]outine:"
2130 sys50088,64,144,"[211][217][211]49415,[216][193],[217][193],[216][197],[217][197]"
2140 sys50088,0,160,"[193]nzugeben sind die [203]oordinaten des"
2150 sys50088,0,168,"[193]nfangs- und [197]ndpunktes."
2160 gosub2280:sys50941:poke49863,2
2170 sys50088,0,0,"[215]enn sich eine [198]igur aus aufeinander"
2180 sys50088,0,8,"folgenden [204]inien zusammensetzt und dabei"
2190 sys50088,0,16,"das [211]etzattribut 2 fuer [208]ixelinver-"
2200 sys50088,0,24,"tierung [214]erwendung findet, wuerden die"
2210 sys50088,0,32,"[193]nschlusspunkte wieder geloescht werden."
2220 sys50088,0,48,"[198]uer diesen [198]all gibt es eine [204]inien-"
2225 sys50088,0,56,"funktion, wobei der [193]nfangspunkt nicht"
2230 sys50088,0,64,"mit ausgegeben wird:"
2240 sys50088,104,80,"[211][217][211]51454,[216]1,[217]1,[216]2,[217]2"
2250 gosub2280:sys51115:return
2260 sys50906,1,0:sys50941:sys51090:return
2270 print:print"weiter mit taste":goto2300
2280 poke49863,0:sys50088,8,184,"weiter mit taste"
2290 gosub2300:sys50088,8,184," ":return
2300 geta$:ifa$=""then2300
2310 return
2320 gosub2260:sys51470,120,8,200,88
2330 sys51710,160,48,39:poke49863,2
2340 sys50088,0,104,"[198]iguren koennen durch [214]erwendung des"
2350 sys50088,0,112,"[208]unktes oder der [204]inie in [194][193][211][201][195] pro-"
2360 sys50088,0,120,"grammiert werden. [200]aeufig werden [203]reis"
2370 sys50088,0,128,"und [210]echteck benoetigt. [200]ierfuer gibt"
2380 sys50088,0,136,"es fertige [210]outinen."
2390 sys50088,0,152,"[210]echteck: [211][217][211]51470,[216]1,[217]1,[216]2,[217]2"
2400 sys50088,0,160,"[203]reis: [211][217][211]51710,[216],[217],[210]":poke49863,0:goto2250
2410 gosub2260:fori=0to3:x1=10+80*i:sys51470,x1,8,x1+60,68:next
2420 sys50524,40,38:sys50524,120,38
2430 y=38:r=28:poke49605,0:sys51710,40,y,r:sys51710,120,y,r
2440 poke49605,1:sys51710,200,y,r:sys51710,280,y,r
2450 poke49863,2:sys50088,0,80,"[193]us [213]mrissen wird eine [198]laeche, wenn die"
2460 sys50088,0,88,"[198]uellfunktion angewendet wird:"
2470 sys50088,120,104,"[211][217][211]50524,[216],[217]"
2480 sys50088,0,120,"[202]e nach der [198]laechenbeschaffenheit wird"
2490 sys50088,128,136,"gefuellt "
2500 poke49863,0:gosub2280:poke49863,2
2510 sys50524,171,20:sys50524,280,30
2520 sys50088,0,144,"oder":sys50088,128,152,"geloescht"
2530 gosub2280
2540 sys50524,11,20:sys50524,120,30
2550 gosub2280:sys51115:return
2560 gosub2260:sys51470,110,0,210,100
2570 sys50774,10,10
2580 sys50088,120,10,"[166]"
2590 sys50774,1,1:poke49605,0:sys49264,180,30:poke49605,1
2600 sys50088,166,36,"[209]":sys50990
2610 poke49863,2:sys50088,0,104,"[198]uellen ist nicht ungefaehrlich."
2620 sys50088,0,112,"[196]as [209]uadrat, in dem sich das ":poke49863,0
2630 sys50107,"[209]-":poke49863,2:sys50107,"[218]eichen"
2640 sys50088,0,120,"befindet, soll gefuellt werden, doch"
2650 sys50088,0,128,"leider ist das [209]uadrat nicht ganz dicht.":poke49863,0
2660 gosub2280
2670 sys50524,160,49
2680 poke49863,2:sys50088,0,144,"[196]ieses war [208]ech, doch der [203]luge hat"
2690 sys50088,0,152,"vorgesorgt.":gosub2280
2700 sys51063:poke49863,2
2710 sys50088,0,104,"[215]er zuvor den [194]ildschirminhalt gerettet"
2720 sys50088,0,112,"hat, kann ihn wieder herholen."
2730 sys50088,0,128,"[194]ildschirm retten: [211][217][211]50990"
2740 sys50088,0,136,"[194]ildschirm holen: [211][217][211]51002"
2750 sys50088,0,152,"[193]usserdem gibt es noch etwas."
2760 sys50088,0,168,"[194]ildschirm tauschen: [211][217][211]51063"
2770 gosub2280:sys51063:gosub2280:sys51063:gosub2280
2780 fori=1to10:sys51063:next:sys51115:return
2790 gosub2260:sys51470,40,8,160,108
2800 sys50774,120,100:sys49264,160,8:sys50990
2810 poke49634,3:sys50774,2,2:sys50088,48,88,"schriftprobe":poke49634,0
2820 fori=0to6step2:sys51238,53248+i,170:next
2830 fori=1to7step2:sys51238,53248+i,85:next:sys50774,1,1
2840 poke49863,4:sys51179,0:sys50990
2850 poke49863,2:sys50088,0,120,"[218]eichen lassen sich als [198]uellmuster"
2860 sys50088,0,128,"verwenden. [196]ie [200]andhabung ist einfach"
2870 sys50088,0,136,"und passt nicht nur fuer mit"
2880 sys50088,0,144,"[211][217][211]50524,[216],[217] fuellbare [198]laechen, sondern"
2890 sys50088,0,152,"fuer jedes beliebige [207]bjekt.":gosub2280
2900 sys50941:poke49863,2:sys50088,0,0,"[194]evor irgendwelche [207]bjekte gefuellt"
2910 sys50088,0,8,"werden koennen, muessen sie definiert"
2920 sys50088,0,16,"sein. [197]ine oertliche [194]estimmung waere"
2930 sys50088,0,24,"sehr kompliziert. [196]aher wurde eine"
2940 sys50088,0,32,"zeitliche [194]estimmung gewaehlt."
2950 sys50088,0,40,"[196]rei [211]chritte sind auszufuehren:"
2960 sys50088,0,56,"1. [194]ildschirm retten mit [211][217][211]50990"
2970 sys50088,0,72,"2. [207]bjekt(e) auf den [194]ildschirm bringen"
2980 sys50088,0,88,"3. [198]uellmuster erzeugen mit [211][217][211]51179,[194][195]"
2990 sys50088,0,104,"[194][195] ist der [194]ildschirmcode des als [198]uell-"
3000 sys50088,0,112,"muster gewaehlten [218]eichens. [211][217][211]51179,[194][195]"
3010 sys50088,0,120,"vergleicht den geretteten [194]ildschirm mit"
3020 sys50088,0,128,"dem aktuellen, und traegt an den geaen-"
3030 sys50088,0,136,"derten [211]tellen das gewaehlte [218]eichen-"
3040 sys50088,0,144,"muster ein. [197]in [214]ergroesserungsfaktor"
3050 sys50088,0,152,"wird beim [198]uellmuster nicht wirksam,"
3060 sys50088,0,160,"wohl aber die [218]eichendrehung."
3070 gosub2280:sys51002:poke49863,2
3080 sys50088,104,120,"[198][213][197][204][204][194][197][201][211][208][201][197][204]"
3090 sys50088,48,136,"[194]ildschirm retten: [211][217][211]50990"
3100 sys50088,48,144,"[207]bjekte erzeugen"
3110 sys50088,48,152,"[198]uellmuster: [211][217][211]51179,102":goto3150
3120 b$="":fori=1tovx:b$=b$+" ":next:poke49863,1
3130 poke49634,3:sys50088,48,yy,b$:poke49634,0:gosub2280:poke49863,1
3140 poke49634,3:sys50088,48,yy,b$:poke49634,0:poke49863,0:return
3150 vx=27:yy=136:gosub3120:sys50990
3160 vx=16:yy=144:gosub3120:poke49605,2
3170 sys51710,100,48,30:sys51710,220,48,30:poke49605,1
3180 sys50524,100,48:sys50524,220,48
3190 vx=25:yy=152:gosub3120
3200 sys51179,102:goto2250
3210 gosub2260:sys50774,2,2:sys50088,20,8,"blockfuellmuster":sys50774,1,1
3220 poke49863,2:sys50088,0,104,"[196]ie [200]andhabung ist dieselbe, wie beim"
3230 sys50088,0,112,"[218]eichenfuellmuster. [201]m [213]nterschied dazu"
3240 sys50088,0,120,"finden nicht ein, sondern 16 [218]eichen"
3250 sys50088,0,128,"[214]erwendung.":sys50990
3260 sys50774,100,70:sys49264,110,27:sys50774,1,1
3270 sys52259,53248,53248,1024,1:sys52259,55296,54272,1024,1:gosub2280:sys51303,0
3280 poke49863,2:sys50088,0,152,"[196]er [194]efehl lautet: [211][217][211]51303,[206][210]":gosub2280
3290 sys50941:poke49863,2:sys50088,0,8,"[194]eim [198]uellmusterbefehl [211][217][211]51303,[206][210]"
3300 sys50088,0,16,"kann [206][210] [215]erte von 0 bis 31 annehmen."
3310 sys50088,0,24,"[196]ie [206]ummern kennzeichnen [194]loecke von"
3320 sys50088,0,32,"4x4 [194]uchstaben aus den definierbaren"
3330 sys50088,0,40,"[218]eichensaetzen 4 und 6 sowie den"
3340 sys50088,0,48,"reversen [218]eichensaetzen 5 und 7."
3350 sys50088,0,64,"[196]ie [193]ufteilung:"
3360 sys50088,48,80,"[206]ummern [218]eichensatz"
3370 sys50088,40,96," 0 bis 7 4"
3380 sys50088,40,104," 8 bis 15 5"
3390 sys50088,40,112,"16 bis 23 6"
3400 sys50088,40,120,"24 bis 31 7"
3410 sys50088,0,144,"[196]ies koennen [211]ie anhand einer [203]opie des"
3420 sys50088,0,152,"[210][207][205]-[218]eichensatzes naeher untersuchen.":gosub2280
3430 sys50941:sys50774,62,62:sys49264,65,65:sys50774,1,1
3440 sys51710,224,96,32:sys50524,224,96:poke49605,0:sys51710,224,96,32
3450 poke49605,1:gosub3460:sys50990:goto3540
3460 poke49863,2:sys50088,0,0,"[215]aehlen [211]ie mit den [212]asten "
3470 poke49863,3:sys50107,"+":poke49863,2:sys50107," und ":poke49863,3
3480 sys50107,"-":poke49863,2
3490 sys50088,0,8,"eine [205]usternummer aus und bestaetigen"
3500 sys50088,0,16,"[211]ie danach die [193]uswahl mit ":poke49863,3
3510 sys50107,"[210][197][212][213][210][206]":poke49863,2:sys50107,"."
3520 sys50088,8,184,"[215]eiter mit [204]eertaste":return
3530 sys50941:gosub3460:sys51470,64,64,127,127:sys51710,224,96,32:return
3540 we=0
3550 sys50088,8,144,"[205]usternummer: "+right$(str$(we),2)
3560 gosub2300:ifa$="+"then3610
3570 if a$="-"then3630
3580 if a$=" "then3660
3590 ifa$=chr$(13)then3650
3600 goto3560
3610 ifwe<>31thenwe=we+1
3620 goto3550
3630 ifwe<>0thenwe=we-1
3640 goto3550
3650 gosub3530:sys51303,we:goto3550
3660 sys50941:sys50088,0,0,"[215]enn [211]ie sich einen eigenen [218]eichensatz"
3670 sys50088,0,8,"entwerfen, koennen [211]ie im [206]u ein"
3680 sys50088,0,16,"[200]ausdach mit [196]achziegeln oder eine"
3690 sys50088,0,24,"[215]iese mit [194]lumen und [199]raesern versehen.":goto2250
3700 gosub2260:sys50088,8,184,"bitte warten"
3710 sys51991,8,"zsatz",53248,8:sys50941
3720 z$="abc[193][194][195][187][188][189][190][219][220][221]":sys50774,2,2
3730 poke49863,6:sys50088,60,8,"[218]eichens[187]tze":poke49863,2:sys50774,1,1
3740 sys50088,0,32,"[214]ier [218]eichensaetze stehen im [199]rafikmodus"
3750 sys50088,0,40,"zur [214]erfuegung, die zwei [210][207][205]-[218]eichen-"
3760 sys50088,0,48,"saetze und zwei benutzerdefinierbare"
3770 sys50088,0,56,"[210][193][205]-[218]eichensaetze."
3780 sys50088,0,72,"[196]ie [218]eichensatzwahl erfolgt durch:"
3790 sys50088,88,88,"[208][207][203][197]49863,[218][211]"
3800 sys50088,0,104,"[196]ie [218]eichensatznummer [218][211] kann [215]erte"
3810 sys50088,0,112,"von 0 bis 7 annehmen.":gosub2280:sys50941
3820 poke49863,2:sys50088,0,0,"[196]ie [218]eichensatznummern, die [193]dressen"
3830 sys50088,0,8,"und die [209]uelle sagt [201]hnen folgende"
3840 sys50088,0,16,"[212]abelle.":zs=0:goto3860
3850 poke49863,zs:sys50107,z$:poke49863,2:zs=zs+1:return
3860 sys50088,8,40,"[218][211] [193]dressen [209]uelle [194]eispiel"
3870 sys50088,8,56,"0 53248-54271 [210][207][205] ":gosub3850
3880 sys50088,8,64,"1 54272-55295 [210][207][205] ":gosub3850
3890 sys50088,8,80,"2 55296-56319 [210][207][205] ":gosub3850
3900 sys50088,8,88,"3 56320-57343 [210][207][205] ":gosub3850
3910 sys50088,8,104,"4 53248-54271 [210][193][205] ":gosub3850
3920 sys50088,8,112,"5 53248-54271 [210][193][205] ":gosub3850
3930 sys50088,8,128,"6 55272-55295 [210][193][205] ":gosub3850
3940 sys50088,8,136,"7 55272-55295 [210][193][205] ":gosub3850
3950 gosub2280:sys50941:poke49863,2
3960 sys50088,0,0,"[198]indet bei [194]efehlen er [194]ildschirmcode"
3970 sys50088,0,8,"eines [218]eichens [214]erwendung, so brauchen"
3980 sys50088,0,16,"[211]ie nicht mittels [208][207][203][197]49863,[218][211] einen"
3990 sys50088,0,24,"anderen [218]eichensatz waehlen, wenn [211]ie"
4000 sys50088,0,32,"das reverse [199]egenstueck moechten,"
4010 sys50088,0,40,"sondern nur den [194]ildschirmcode um den"
4020 sys50088,0,48,"[215]ert 128 erhoehen."
4030 poke49863,6:sys50088,0,64,"[221]brigens bekommen [211]ie, falls [211]ie den"
4040 sys50088,0,72,"auf der [196]iskette befindlichen [218]eichen-"
4050 sys50088,0,80,"satz [218][211][193][212][218] geladen haben die deutschen"
4060 sys50088,0,88,"[213]mlaute auf folgenden [212]asten:"
4070 sys50088,40,104,"[187]: [195][194][205] f"
4080 sys50088,40,112,"[188]: [195][194][205] c"
4090 sys50088,40,120,"[189]: [195][194][205] x"
4100 sys50088,40,128,"[190]: [195][194][205] v"
4110 sys50088,40,136,"[219]: [211][200][201][198][212] +"
4120 sys50088,40,144,"[220]: [195][194][205] -"
4130 sys50088,40,152,"[221]: [211][200][201][198][212] -"
4140 poke49863,2:sys50088,0,168,"[214]ergleiche hierzu [205]enuepunkt:"
4150 sys50088,0,176,"[203]opieren, [204]aden, [211]peichern.":goto2250
4160 gosub2260:poke49863,2:sys50088,56,0,"[203]opieren, [204]aden, [211]peichern"
4170 sys50088,0,32,"[203]opieren: [211][217][211]52259,[209],[218],[193],[198]"
4180 sys50088,0,48,"[209] = [209]uelladresse"
4190 sys50088,0,56,"[218] = [218]ieladresse"
4200 sys50088,0,64,"[193] = [193]nzahl"
4210 sys50088,0,72,"[198] = [198]lag (0/1 fuer [209]uelle = [210][193][205]/[210][207][205])
4220 [158]50088,0,88,"peekeispiel (NULL)(NULL)(NULL)-(NULL)eichensatz auf peekildschirm:"
4230 [158]50088,56,112,"(NULL)(NULL)(NULL)52259,53248,57344,4096,1":[141]2280
4240 [158]52259,53248,57344,4096,1
4250 [151]49863,2:[158]50088,0,136,"(NULL)ie koennen auch den (NULL)(NULL)(NULL)/(NULL)eichensatz zum"
4260 [158]50088,0,144,"(NULL)atn(NULL)-(NULL)eichensatz machen oder auf dem"
4270 [158]50088,0,152,"peekildschirm valntworfenes als (NULL)atn(NULL)-"
4280 [158]50088,0,160,"(NULL)eichensatz definieren.":[141]2280:[158]50941
4290 [151]49863,2:[158]50088,0,0,"peekeim (NULL)atn(NULL)-(NULL)eichensatz gilt es zu berueck-"
4300 [158]50088,0,8,"sichtigen, dass dort die reversen"
4310 [158]50088,0,16,"(NULL)eichen programmtechnisch erzeugt werden"
4320 [158]50088,0,24,"und daher nicht mit zu erfassen sind."
4330 z$[178][199](34)
4340 [158]50088,0,40,"(NULL)aden: (NULL)(NULL)(NULL)51991,chr$atn,"[170]z$[170]"(NULL)ame"[170]z$[170]",atndr,peekl"
4350 [158]50088,0,48,"(NULL)peichern: (NULL)(NULL)(NULL)52122,chr$atn,"[170]z$[170]"(NULL)ame,(NULL),(NULL)"[170]z$[170]",atndr,peekl"
4360 [158]50088,8,64,"chr$atn = chr$eraeteadresse"
4370 [158]50088,8,72,"atndr = (NULL)ade- oder (NULL)peicheradresse"
4380 [158]50088,8,80,"peekl = peeklockzahl"
4390 [158]50088,0,96,"(NULL)u beachten ist, dass kein (NULL)anal mit"
4400 [158]50088,0,104,"(NULL)ummer 8 oder kein ascile mit (NULL)ekundaer-"
4410 [158]50088,0,112,"adresse 8 beim atnufruf dieser (NULL)outinen"
4420 [158]50088,0,120,"eroeffnet sein darf."
4430 [158]50088,0,136,"peekeim (NULL)peichern ist nicht die atnnzahl der"
4440 [158]50088,0,144,"peekytes, sondern die peeklockzahl, anzugeben."
4450 [158]50088,0,152,"peekeim (NULL)aden hat die peeklockzahl nur eine"
4460 [158]50088,0,160,"einschraenkende ascunktion und kann auch"
4470 [158]50088,0,168,"einfach auf den (NULL)aximalwert 255 gesetzt"
4480 [158]50088,0,176,"werden."
4490 [141]2280:[158]50941:[151]49863,2
4500 [158]50088,0,96,"peekeispiel: (NULL)aden des (NULL)eichensatzes (NULL)(NULL)atn(NULL)(NULL)"
4510 [158]50088,0,104,"und anschliessendes (NULL)opieren auf den"
4520 [158]50088,0,112,"peekildschirm."
4530 [158]50088,0,128,"(NULL)(NULL)(NULL)51991,8,"[170]z$[170]"(NULL)(NULL)atn(NULL)(NULL)"[170]z$[170]",53248,8"
4540 [158]50088,0,136,"(NULL)(NULL)(NULL)52259,53248,57344,2048,0"
4550 [158]51991,8,"zsatz",53248,8
4560 [158]52259,53248,57344,2048,0
4570 [151]49863,6:[158]50088,0,152,"ascexpr chr$rafiken gibt es spezielle (NULL)ade-"
4580 [158]50088,0,160,"und (NULL)peicherroutinen.":[137]2250
4590 [141]2260:[158]50990:[151]49863,2:[158]50774,2,2
4600 [158]50088,0,0,"(NULL)aden und (NULL)peichern"
4610 [158]50774,1,1:[158]50088,112,16,"von chr$rafiken"
4620 z$[178][199](34):[158]50088,0,40,"(NULL)aden: (NULL)(NULL)(NULL)52030,chr$atn,"[170]z$[170]"(NULL)ame"[170]z$[170]",ascasc,peekasc"
4630 [158]50088,0,48,"(NULL)peichern: (NULL)(NULL)(NULL)52162,chr$atn,"[170]z$[170]"(NULL)ame,(NULL),(NULL)"[170]z$[170]",ascasc,peekasc"
4640 [158]50088,0,64,"chr$atn = chr$eraeteadresse"
4650 [158]50088,0,72,"ascasc = ascarbflag (0/1 = ohne/mit ascarbe)
4660 sys50088,0,80,"[194][198] = [194]ereichsflag (0/1)
4670 [158]50088,0,96,"peekasc=0: chr$rafikbildschirm wird adressiert"
4680 [158]50088,0,104,"peekasc=1: (NULL)icherungsbereich wird adressiert"
4690 [158]50088,0,120,"peekeispiel: (NULL)aden einer chr$rafik und zeigen"
4700 [158]50088,0,128,"nach (NULL)astendruck."
4710 [158]50088,0,144,"10 (NULL)(NULL)(NULL)52030,8,"[170]z$[170]"chr$(NULL)atnascright$(NULL)"[170]z$[170]",1,1"
4720 [158]50088,0,152,"20 geta$:ifa$="[170]z$[170]z$[170]"then 20"
4730 [158]50088,0,160,"30 (NULL)(NULL)(NULL)51002"
4740 [158]52030,8,"grafik",1,1:[141]2280:[158]51002:[137]2250
4750 [141]2260:[151]49863,2:[158]50088,64,0,"ascarbe kommt ins (NULL)piel"
4760 [158]50088,0,16,"(NULL)it (NULL)(NULL)(NULL)50906,(NULL)asc,left$asc kann die (NULL)order-"
4770 [158]50088,0,24,"und left$intergrundfarbe fuer den gesamten"
4780 [158]50088,0,32,"peekildschirm gesetzt werden."
4790 [158]50088,96,48,"left$right$(NULL)(NULL)val(NULL)chr$(NULL)(NULL)(NULL)str$ascatn(NULL)peekval"
4800 [151]49154,3:[129]i[178]0[164]15:[158]50906,1,i:[158]50873,1,0:[141]2280:[130]
4810 [158]50906,1,0:[158]50088,96,56,"vordergrundfarbe":[141]2280
4820 [129]i[178]0[164]15:[158]50906,i,0:[158]50873,1,0:[141]2280:[130]:[137]4890
4830 [151]49863,2:[158]51002
4840 [158]50088,152,48,"(NULL)(NULL)(NULL)val49154,"[170][199](fa[170]48)
4850 [151]49154,fa
4860 [158]50906,1,0:[151]49863,0:[129]j[178]0[164]15:[158]50088,152,j[172]8[170]64,""
4870 [129]i[178]0[164]15:[158]50873,i,j:[158]50107,"(NULL)":[130]:[130]:[151]49154,0:[158]50873,1,0
4880 [137]2280
4890 [158]50906,1,0:[151]49863,2
4900 [158]50088,0,72,"valine von der chr$lobaleinstellung"
4910 [158]50088,0,80,"abweichende ascarbe kann auch beim (NULL)etzen"
4920 [158]50088,0,88,"von (NULL)unkten oder der (NULL)extausgabe in der"
4930 [158]50088,0,96,"naeheren (NULL)mgebung des gesetzten (NULL)unktes"
4940 [158]50088,0,104,"wirksam werden."
4950 [158]50088,0,120,"str$ie ascarbwahl geschieht hier mit:"
4960 [158]50088,96,136,"(NULL)(NULL)(NULL)50873,(NULL)asc,left$asc"
4970 [141]2280:[151]49863,2:[158]50941
4980 [158]50088,0,0,"str$ie gewaehlte ascarbkombination wird nicht"
4990 [158]50088,0,8,"immer wirksam, sondern nur, wenn dieses"
5000 [158]50088,0,16,"auch gewuenscht wird. left$ierzu gibt es das"
5010 [158]50088,0,24,"ascarbattribut, welches gaendert wird mit:"
5020 [158]50088,96,40,"(NULL)(NULL)(NULL)val49154,ascatn"
5030 [158]50088,0,56,"mid$e nach ascarbattribut wird die ascarbe"
5040 [158]50088,0,64,"nicht, nur die (NULL)ordergrundfarbe, nur"
5050 [158]50088,0,72,"die left$intergrundfarbe, oder sowohl"
5060 [158]50088,0,80,"(NULL)order- sowie left$intergrundfarbe wirksam."
5070 [158]50088,8,96,"ascarbattribut und wirksame ascarben:"
5080 [158]50088,104,112,"ascatn=0: -- --"
5090 [158]50088,104,120,"ascatn=1: (NULL)asc --"
5100 [158]50088,104,128,"ascatn=2: -- left$asc"
5110 [158]50088,104,136,"ascatn=3: (NULL)asc left$asc"
5120 [141]2280:[158]50941:[151]49863,2
5130 [158]50774,2,2:[158]50088,64,0,"ascarbbeispiel":[158]50774,1,1
5140 [158]50088,0,24,"(NULL)(NULL)(NULL)val49154,ascatn entscheidet ueber das zum"
5150 [158]50088,0,32,"(NULL)uge kommen der durch (NULL)(NULL)(NULL)50873,(NULL)asc,left$asc"
5160 [158]50088,0,40,"gesetzten ascarben:"
5170 [158]51470,151,63,280,192
5180 [158]50990:[129]fa[178]0[164]3:[141]4830:[130]
5190 [141]2260
5200 [151]49863,2:[158]50088,0,0,"str$ie (NULL)erwendung unterschiedlicher ascarben"
5210 [158]50088,0,8,"ist etwas problematisch, da die ascarbe"
5220 [158]50088,0,16,"nicht nur fuer einen einzelnen (NULL)unkt,"
5230 [158]50088,0,24,"sondern fuer eine (NULL)atrix aus 8 mal 8"
5240 [158]50088,0,32,"(NULL)unkten gilt. str$a kann es leicht zu"
5250 [158]50088,0,40,"(NULL)eberschneidungen kommen."
5260 [158]50873,7,6:[151]49154,1:[158]50774,2,2:[158]51710,130,120,60
5270 [158]50873,10,6:[151]49154,3:[158]51710,190,120,60:[158]50873,1,0:[151]49154,0
5280 [158]50774,1,1:[141]2280
5290 [141]2260:[151]49863,2:[158]50088,0,0,"atnuch nach der ascertigstellung einer"
5300 [158]50088,0,8,"chr$rafik kann diese noch eingefaerbt"
5310 [158]50088,0,16,"werden. (NULL)(NULL)(NULL)51075,(NULL),(NULL) setzt nur die"
5320 [158]50088,0,24,"ascarbinformation, ohne einen (NULL)unkt"
5330 [158]50088,0,32,"auszugeben.":[141]2280
5340 [158]50873,7,6:[151]49154,3:[129]x[178]64[164]152[169]8:[158]51075,x,16:[130]
5350 [151]49154,0:[137]2250
5360 [151]49863,0:[137]2250
5370 [153]"
5380 printchr$(147):printtab(10)"supergraphic info"
5390 print:print
5400 print" a = grafik ein/aus, farbe, loeschen"
5410 print" b = textausgabe"
5420 print" c = vergroesserung"
5430 print" d = zeichendrehung, schriftrichtung"
5440 print" e = textattribut"
5450 print" f = punktausgabe, setzattribut"
5460 print" g = linien"
5470 print" h = figuren: kreis, rechteck"
5480 print" i = flaechen fuellen, leeren"
5490 print" j = bildschirm retten, holen, wechseln"
5500 print" k = zeichenfuellmuster"
5510 print" l = blockfuellmuster"
5520 print" m = zeichensaetze"
5530 print" n = kopieren, laden, speichern"
5540 print" o = grafik laden/speichern"
5550 print" p = farbe"
5560 print" q = ende"
5570 print:print"treffen sie ihre wahl!"
5580 gosub2300:ifa$<"a"ora$>"q"then5580
5590 a=asc(a$)-64
5600 ifa>13then5630
5610 onagosub90,510,710,970,1390,1820,2090,2320,2410,2560,2790,3210,3700
5620 goto5380
5630 ona-13gosub4160,4590,4750,5650
5640 goto5380
5650 end
5660 rem ===programmende===============